const CryptoJS = require("crypto-js"); //引用AES源码js

const keyStr = "icklsdufidsakdfa"; //十六位十六进制数作为密钥
const ivStr = ""; // 偏移量

function Encrypt(data) {
  var key = CryptoJS.enc.Utf8.parse(keyStr);
  var iv = CryptoJS.enc.Utf8.parse(ivStr);
  var encrypted = CryptoJS.AES.encrypt(data, key, {
    iv: iv,
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
  });
  //返回的是base64格式的密文
  return encrypted.ciphertext.toString();
}

// encrypted 为是base64格式的密文
function Decrypt(encrypted) {
  var encryptedHexStr = CryptoJS.enc.Hex.parse(encrypted);
  var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
  var key = CryptoJS.enc.Utf8.parse(keyStr);
  var iv = CryptoJS.enc.Utf8.parse(ivStr);
  var decrypted = CryptoJS.AES.decrypt(srcs, key, {
    iv: iv,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
  });
  return decrypted.toString(CryptoJS.enc.Utf8);
}

// 测试加、解密
function testAES() {
  var data = "1234567890123456"; // 明文

  console.log("加密前：" + data);

  // 测试加密
  var encrypted = Encrypt(data); // 密文
  console.log("加密后: " + encrypted);

  // var decryptedStr = Decrypt(encrypted);
  // console.log("解密后: " + decryptedStr);
}
// testAES()
export default {
  Decrypt,
  Encrypt
};
